1. Field
This disclosure relates to microprocessor debug features.
2. Background Information
One debug feature of processors, such as microprocessors, that may be used, for example, by software driver developers or basic input output system (BIOS) developers, tracks the sequential execution of machine instructions or code, as it is often referred to in the art. Software drivers and BIOS are both well-known in the art. This tracking of code execution may be accomplished by employing branch trace messages (BTMs). These branch trace messages may indicate when a branch is taken in code execution. There are numerous reasons for the use of branches in code. For example, decision points in code execution typically employ such branches. Whether or not a branch is taken may depend on the result of such a decision. Typically, BTMs include information about where in the code the branch was taken from and where in the code the branch resumes execution. Where the branch was taken from may be referred to as the branch address and where in the code the branch resumes execution may be referred to as the target address. Instruction pointers, which are well-known in the art, typically reference the location of an instruction that is currently being executed by a processor or microprocessor. Such BTM schemes are currently employed, for example, in microprocessors such as Pentium(copyright) II Processors and Pentium(copyright) III Processors, which are available from Intel Corporation, 2200 Mission College Blvd., Santa Clara, Calif. 95052. However, as microprocessors become highly integrated, debugging code, such as software drivers, becomes more problematic because, depending, at least, on the architecture, for example, prior approaches to tracking code execution may no longer apply. Therefore, a need exists for alternative schemes of debugging computing systems, such as is done by following code execution flow with BTMs, for example.